package br.ufrn.dimap;

import java.util.HashMap;

public class PalavrasReservadas {
	
	private HashMap<String, Token> plvrs;
	
	public PalavrasReservadas(){
		plvrs = new HashMap<String, Token>();
		carregarPalavras();
	}
	
	public HashMap<String, Token> carregarPalavras(){
		
		plvrs.put("var", Token.T_VAR);
		plvrs.put("inteiro", Token.T_TIPO_INTEIRO);
		plvrs.put("real", Token.T_TIPO_REAL);
		plvrs.put("caractere", Token.T_TIPO_CARACTERE);
		plvrs.put("texto", Token.T_TIPO_TEXTO);
		plvrs.put("booleano", Token.T_TIPO_BOOLEANO);
		plvrs.put("arranjo", Token.T_TIPO_ARRANJO);
		plvrs.put("por", Token.T_POR);
		plvrs.put("tam", Token.T_TAM);
		plvrs.put("cte", Token.T_CONST);
		plvrs.put("tipo", Token.T_TIPO);
		plvrs.put("estrutura", Token.T_ESTRUTURA);
		plvrs.put("programa", Token.T_PROGRAMA);
		plvrs.put("funcao", Token.T_FUNCAO);
		plvrs.put("procedimento", Token.T_PROCEDIMENTO);
		plvrs.put("retorna", Token.T_RETORNO);
		plvrs.put("escreva", Token.T_ESCREVA);
		plvrs.put("faca", Token.T_FACA);
		plvrs.put("ate", Token.T_ATE);
		plvrs.put("repita", Token.T_REPITA);
		plvrs.put("enquanto", Token.T_ENQUANTO);
		plvrs.put("para", Token.T_PARA);
		plvrs.put("com", Token.T_COM);
		plvrs.put("passo", Token.T_PASSO);
		plvrs.put("de", Token.T_DE);
		plvrs.put("caso", Token.T_CASO);
		plvrs.put("seja", Token.T_SEJA);
		plvrs.put("igual", Token.T_IGUAL);
		plvrs.put("a", Token.T_A);
		plvrs.put("se", Token.T_SE);
		plvrs.put("senao", Token.T_SENAO);
		plvrs.put("nulo", Token.RESERVADO);
		plvrs.put("end", Token.T_END);
		plvrs.put("ref", Token.T_REF);
		plvrs.put("nao", Token.T_NAO);
		plvrs.put("e", Token.T_BOOLEANO_E);
		plvrs.put("ou", Token.T_BOOLEANO_OU);
		plvrs.put("entao", Token.T_ENTAO);
		plvrs.put("fim", Token.T_FIM);
		plvrs.put("fim-programa", Token.T_FIM_PROGRAMA);
		plvrs.put("fim-funcao", Token.T_FIM_FUNCAO);
		plvrs.put("fim-procedimento", Token.T_FIM_PROCEDIMENTO);
		plvrs.put("fim-tipo", Token.T_FIM_TIPO);
		plvrs.put("fim-para", Token.T_FIM_PARA);
		plvrs.put("fim-caso", Token.T_FIM_CASO);
		plvrs.put("fim-enquanto", Token.T_FIM_ENQUANTO);
		plvrs.put("fim-funcao", Token.T_FIM_FUNCAO);
		plvrs.put("fim-se", Token.T_FIM_SE);
		
		return plvrs;		
	}

	public Token getTokenDaPalavra(String pal){
		return plvrs.get(pal);
	}
}
